CSS ์บ์ค์ผ์ด๋ ๋ ์ด์ด์ ๋ถ๋ชจ-์์ ๊ด๊ณ๋ฅผ ํ๊ตฌํ๊ณ , ์์๊ณผ ๋ช ์๋๊ฐ ์ด๋ป๊ฒ ์ํธ์์ฉํ์ฌ ๊ฐ๋ ฅํ ์คํ์ผ๋ง ์ ์ด๋ฅผ ์ ๊ณตํ๋์ง ์์๋ณด์ธ์.
CSS ์บ์ค์ผ์ด๋ ๋ ์ด์ด ์์ ์ดํดํ๊ธฐ: ๋ถ๋ชจ-์์ ๋ ์ด์ด ๊ด๊ณ
๋์์์ด ์งํํ๋ ์น ๊ฐ๋ฐ ํ๊ฒฝ์์ ์คํ์ผ์ํธ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ํ๋ก์ ํธ๊ฐ ๋ณต์กํด์ง์ ๋ฐ๋ผ ๊ฐ๋ ฅํ๊ณ ์์ธก ๊ฐ๋ฅํ ์คํ์ผ๋ง ๋ฉ์ปค๋์ฆ์ ํ์์ฑ๋ ์ปค์ง๋๋ค. CSS ๋ช ์๋๋ฅผ ๋ณด๋ค ์ฒด๊ณ์ ์ด๊ณ ์ ์ด ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ๋์ ๋ CSS ์บ์ค์ผ์ด๋ ๋ ์ด์ด๋ ์ด์ ์์ด์๋ ์ ๋ ๋๊ตฌ๊ฐ ๋์์ต๋๋ค. ๋ ์ด์ด์ ํต์ฌ ๊ฐ๋ ์ด ๋ช ์๋ ์ถฉ๋์ ํด๊ฒฐํ๋ ๊ฒ์ด์ง๋ง, ๋ถ๋ชจ-์์ ๋ ์ด์ด ๊ด๊ณ๋ฅผ ์ดํดํ๋ ๊ฒ์ ๊ทธ ์ ์ฌ๋ ฅ์ ์ต๋ํ ํ์ฉํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
์ด ๊ธ์์๋ CSS ์บ์ค์ผ์ด๋ ๋ ์ด์ด์ ์๋ ๋ฐฉ์, ํนํ ๋ถ๋ชจ ๋ ์ด์ด์ ์์ ๋ ์ด์ด ๊ฐ์ ๋ฏธ๋ฌํ ์ํธ ์์ฉ์ ์ด์ ์ ๋ง์ถฐ ์ฌ๋ ์๊ฒ ๋ค๋ฃฐ ๊ฒ์ ๋๋ค. ์คํ์ผ์ด ์ด๋ป๊ฒ ๊ณ๋จ์์ผ๋ก ์ ์ฉ๋๋์ง, ์ฌ๋ฌ ๋ ์ด์ด์ ๊ฑธ์ณ ๋ช ์๋๊ฐ ์ด๋ป๊ฒ ๊ด๋ฆฌ๋๋์ง, ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ๋ถ๋ชจ-์์ ์ญํ์ด ์ ์ฒด์ ์ธ ์คํ์ผ ์์์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์ง ๋ช ํํ ์ค๋ช ํ๊ฒ ์ต๋๋ค. ์ด ํ๊ตฌ๋ฅผ ๋ง์น๋ฉด ์ด ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ๋ํ ํฌ๊ด์ ์ธ ์ดํด๋ฅผ ๊ฐ์ถ๊ณ ํ๋ก์ ํธ์ ํจ๊ณผ์ ์ผ๋ก ๊ตฌํํ ์ ์๊ฒ ๋ ๊ฒ์ ๋๋ค.
CSS ์บ์ค์ผ์ด๋ ๋ ์ด์ด๋? ๊ฐ๋จํ ๋ณต์ต
๋ถ๋ชจ-์์ ๊ด๊ณ๋ฅผ ์ดํด๋ณด๊ธฐ ์ ์ CSS ์บ์ค์ผ์ด๋ ๋ ์ด์ด๊ฐ ๋ฌด์์ธ์ง ๊ฐ๋จํ ๋ณต์ตํด ๋ณด๊ฒ ์ต๋๋ค. CSS์ ๋์ ๋ ์บ์ค์ผ์ด๋ ๋ ์ด์ด๋ ๊ฐ๋ฐ์๊ฐ CSS ๊ท์น์ ๊ณ ์ ํ ๊ณ์ธต์ผ๋ก ๊ทธ๋ฃนํํ๊ณ , ๊ฐ ๊ณ์ธต์ด ์บ์ค์ผ์ด๋ ๋ด์์ ์์ฒด ์ฐ์ ์์๋ฅผ ๊ฐ๋๋ก ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ์ด์ ๋ณด๋ค ๋ ์ธ๋ฐํ๊ฒ CSS ์ถ์ฒ, ์ค์๋ ๋ฐ ๋ช ์๋์ ์์๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ธ ์บ์ค์ผ์ด๋ ์์๋ ๊ฐ์ฅ ๋ฎ์ ์ฐ์ ์์์์ ๊ฐ์ฅ ๋์ ์ฐ์ ์์ ์์ผ๋ก ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ ํ ์ ์ธ(Transition Declarations): CSS ์ ํ ์ค์ ์ ์ฉ๋๋ ์คํ์ผ์ ๋๋ค.
- ์ ๋๋ฉ์ด์ (Animations): CSS ์ ๋๋ฉ์ด์ ์ผ๋ก ์ค์ ๋ ์คํ์ผ์ ๋๋ค.
- ์ผ๋ฐ CSS ์ ์ธ(General CSS Declarations): ์บ์ค์ผ์ด๋ ๋ ์ด์ด๊ฐ ์๋ํ๋ ๊ณณ์ ๋๋ค. ์ฌ์ฉ์ ์์ด์ ํธ ์คํ์ผ์ํธ, ์์ฑ์ ์คํ์ผ์ํธ(์ฌ๋ฌ๋ถ์ CSS), ์ฌ์ฉ์ ์คํ์ผ์ํธ(์ฌ์ฉ์ ์ ์)์ ์คํ์ผ์ด ์ฌ๊ธฐ์์ ์ฒ๋ฆฌ๋ฉ๋๋ค.
- `!important` ์ ์ธ: `!important`๋ก ํ์๋ ์ ์ธ์ ๋๋ค.
- `!important` ์ ์ธ: ๋ ๋์ ์ฐ์ ์์์ ์ถ์ฒ(์: ์์ฑ์ ์คํ์ผ์ด ์ฌ์ฉ์ ์์ด์ ํธ ์คํ์ผ๋ณด๋ค ์ฐ์ )์์ ์จ `!important` ์ ์ธ์ ๋๋ค.
'์ผ๋ฐ CSS ์ ์ธ' ๋จ๊ณ ๋ด์์ ์บ์ค์ผ์ด๋ ๋ ์ด์ด๋ ์๋ก์ด ์ฐจ์์ ์ ์ด ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ช ์์ ์ธ ๋ ์ด์ด์ ๊ทธ ์์๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ค์๊ณผ ๊ฐ์ ๋ ์ด์ด๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค:
- ๋ฆฌ์ /๊ธฐ๋ณธ ์คํ์ผ
- ํ๋ ์์ํฌ ์คํ์ผ
- ์ปดํฌ๋ํธ ์คํ์ผ
- ์ ํธ๋ฆฌํฐ
- ํ ๋ง ์คํ์ผ
์ด๋ฌํ ๋ ์ด์ด๋ฅผ ์ ์ํจ์ผ๋ก์จ, ์๋ฅผ ๋ค์ด ์ปดํฌ๋ํธ ์คํ์ผ์ด ํญ์ ํ๋ ์์ํฌ ์คํ์ผ์ ์ฌ์ ์ํ๊ณ , ์ ํธ๋ฆฌํฐ ํด๋์ค๊ฐ ์คํ์ผ์ํธ ๋ด ์์์ ๊ด๊ณ์์ด ์์ฑ์ ์คํ์ผ ๋ด์์ ๊ฐ์ฅ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ๋๋ก ์ง์ ํ ์ ์์ต๋๋ค.
๊ตฌ๋ฌธ์ @layer ๊ท์น์ ์ฌ์ฉํ๋ฉฐ, ์ด๋ฅผ ํตํด ๋ ์ด์ด๋ฅผ ์ ์ธํ๊ณ ์ ํ์ ์ผ๋ก ๋ค๋ฅธ ๋ ์ด์ด์ ๋ํ ์บ์ค์ผ์ด๋ ๋ด ์์น๋ฅผ ์ ์ํ ์ ์์ต๋๋ค.
@layer reset;
@layer base, components, utilities;
@layer components {
/* Styles for components */
}
@layer utilities {
/* Utility classes */
}
์ค์ํ ์ ์, ๋ ์ด์ด์ ์ํ์ง ์์ ๊ท์น(@layer ๋ธ๋ก ๋ด์ ์์ง ์์ ๊ท์น)์ ๋ช
์์ ์ผ๋ก ์ ์ธ๋ ์ด๋ค ๋ ์ด์ด๋ณด๋ค ๋ฎ์ ์ฐ์ ์์๋ฅผ ๊ฐ๋ ๊ธฐ๋ณธ ๋ ์ด์ด์ ๋ฐฐ์น๋๋ฉฐ, ๊ทธ ์์๋ ์คํ์ผ์ํธ์์์ ๋ฑ์ฅ ์์์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค.
๋ถ๋ชจ-์์ ๋ ์ด์ด์ ๊ฐ๋
CSS ์บ์ค์ผ์ด๋ ๋ ์ด์ด์์ '๋ถ๋ชจ-์์' ๋ ์ด์ด๋ผ๋ ๊ฐ๋ ์ DOM ์๋ฏธ์์์ ์ง์ ์ ์ด๊ณ ๋ช ์์ ์ธ ๋ถ๋ชจ-์์ ๊ด๊ณ๊ฐ ์๋๋๋ค. ๋์ , ์ด๋ ๋ถ๋ชจ ๋ ์ด์ด(๋ ๋์ ๋ฒ์์์ ์ ์ธ๋๊ฑฐ๋ ์ ์๋ ์์๋ฅผ ๊ฐ์ง ๋ ์ด์ด)๊ฐ ์์ ๋ ์ด์ด(ํน์ ์ปจํ ์คํธ ๋ด์์ ๋๋ ๋ ๋ฎ์ ์์๋ก ์ ์๋ ๋ ์ด์ด)์ ์ด๋ป๊ฒ ์ํฅ์ ์ฃผ๊ฑฐ๋ ๋ฐ์ ์ ์๋์ง๋ฅผ ์๋ฏธํฉ๋๋ค.
์ด ๊ด๊ณ๋ฅผ ๊ฒฐ์ ํ๋ ์ฃผ์ ๋ฉ์ปค๋์ฆ์ ์บ์ค์ผ์ด๋ ์์ ์์ฒด์ ๊ฐ ๋ ์ด์ด ๋ด ๊ท์น์ ๋ช ์๋์ ์กฐํฉ์ ๋๋ค. ์บ์ค์ผ์ด๋ ๋ ์ด์ด์ ๋งฅ๋ฝ์์ ๋ถ๋ชจ-์์ ์ํธ ์์ฉ์ ๋ ผํ ๋, ์ฐ๋ฆฌ๋ ๋ณธ์ง์ ์ผ๋ก ๋ค์์ ์ด์ผ๊ธฐํ๋ ๊ฒ์ ๋๋ค:
- ๋ ์ด์ด ์์ ๋ฐ ์ฐ์ ์์: ์ ์๋ ๋ ์ด์ด ์์๊ฐ ์ถฉ๋ ์ ์ด๋ค ์คํ์ผ์ด ์ด๊ธธ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐฉ์.
- ๋ช ์๋์ ์์(์๋ฌต์ ): '์์' ๋๋ '์ธ๋ถ' ๋ ์ด์ด์ ์ ์๋ ๊ท์น์ด ์บ์ค์ผ์ด๋์ ํน์ฑ์ผ๋ก ์ธํด 'ํ์' ๋๋ '๋ด๋ถ' ๋ ์ด์ด์ ์๋ฌต์ ์ผ๋ก ์ด๋ป๊ฒ ์ํฅ์ ๋ฏธ์น ์ ์๋์ง.
- ๊ตฌ์ฑ ๋ฐ ์บก์ํ: ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ๋์์ธ ์์คํ ์ ๋ค๋ฅธ ๋ถ๋ถ์ ๋ํ ์คํ์ผ์ ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ ์ด์ด๋ฅผ ์ด๋ป๊ฒ ๊ตฌ์กฐํํ์ฌ ๊ณ์ธต์ ๊ตฌ์กฐ๋ฅผ ๋ชจ๋ฐฉํ ์ ์๋์ง.
์ด๋ค์ ํ๋์ฉ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ ์ด์ด ์์์ ์ฐ์ ์์: ์ง๋ฐฐ์ ์ธ ๋ถ๋ชจ
ํ ๋ ์ด์ด๊ฐ ๋ค๋ฅธ ๋ ์ด์ด์ '๋ถ๋ชจ'๋ก ๊ฐ์ฃผ๋ ์ ์๋ ๊ฐ์ฅ ์ง์ ์ ์ธ ๋ฐฉ๋ฒ์ ์บ์ค์ผ์ด๋ ์์์์์ ์์น๋ฅผ ํตํด์์ ๋๋ค. ๋ง์ฝ ๋ ์ด์ด A๊ฐ ๋ ์ด์ด B๋ณด๋ค ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ๋๋ก ์ ์๋๋ค๋ฉด, ๋ ์ด์ด A๋ ๊ท์น ์ ์ฉ ์ธก๋ฉด์์ ํจ๊ณผ์ ์ผ๋ก ๋ ์ด์ด B๋ฅผ '๋ถ๋ชจ' ์ญํ ์ ํฉ๋๋ค. ๋ ์ด์ด A์ ์ ์๋ ๋ชจ๋ ์คํ์ผ์ ์์ฐ์ค๋ฝ๊ฒ ๋ ์ด์ด B์ ์๋ ๋์ผํ ๋ช ์๋์ ์ถฉ๋ํ๋ ์คํ์ผ์ ์ฌ์ ์ํฉ๋๋ค. ๋จ, ๋ ์คํ์ผ ๋ชจ๋ ์์ฑ์ ์ถ์ฒ ๋ด์ ์๊ณ `!important`๋ก ํ์๋์ง ์์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
๋ ์ด์ด ์์ ์ ์ธํ๊ธฐ
@layer ๊ท์น์ ์ฌ์ฉํ๋ฉด ์ด ์์๋ฅผ ๋ช
์์ ์ผ๋ก ์ ์ดํ ์ ์์ต๋๋ค. ์์๋ฅผ ์ง์ ํ์ง ์๊ณ ๋ ์ด์ด๋ฅผ ์ ์ธํ๋ฉด, ์ด๋ค์ ๊ฐ์ฅ ๋ฎ์ ์ฐ์ ์์๋ฅผ ๊ฐ๋ `_`(๋ฐ์ค)์ด๋ผ๋ ์ด๋ฆ์ ๊ธฐ๋ณธ ๋ ์ด์ด์ ๋ฐฐ์น๋ฉ๋๋ค. ๋ช
์์ ์ผ๋ก ์ด๋ฆ์ด ์ง์ ๋ ๋ ์ด์ด๋ ์ ์ธ๋ ํ ๋์ค์ ์คํ์ผ๋ก ์ ์๋๋ฉด ์ ์ธ ์์์ ๋ฐ๋ผ ์บ์ค์ผ์ด๋์ ์ฐธ์ฌํ๊ฒ ๋ฉ๋๋ค.
๋ค์ ์์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค:
/* Layer 'reset' declared first */
@layer reset;
/* Layer 'components' declared second */
@layer components;
/* Layer 'utilities' declared third */
@layer utilities;
@layer reset {
body {
margin: 0;
padding: 0;
}
}
@layer components {
.button {
padding: 10px 20px;
background-color: blue;
color: white;
}
}
@layer utilities {
.bg-red {
background-color: red;
}
}
/* Un-layered rules */
.button {
border-radius: 5px;
}
h1 {
font-size: 2em;
}
์ด ์๋๋ฆฌ์ค์์:
reset์ ์ ์ธ๋ ๋ ์ด์ด ์ค์์ ๊ฐ์ฅ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋๋ค.components๊ฐ ๊ทธ ๋ค์์ผ๋ก ๋์ต๋๋ค.utilities๊ฐ ๊ทธ ๋ค์์ผ๋ก ๋์ต๋๋ค.- ๋ ์ด์ด์ ์ํ์ง ์์ ๊ท์น(`.button`๊ณผ `h1` ๋ฑ)์ ๊ฐ์ฅ ๋ฎ์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง ๊ธฐ๋ณธ ๋ ์ด์ด์ ๋ฐฐ์น๋ฉ๋๋ค.
๊ตญ์ ์ ์์: ๊ธ๋ก๋ฒ ์ ์์๊ฑฐ๋ ํ๋ซํผ์ ์์ํด ๋ณด์ธ์. 'global-reset' ๋ ์ด์ด, 'brand-guidelines' ๋ ์ด์ด, 'product-card-components' ๋ ์ด์ด, 'checkout-form-styles' ๋ ์ด์ด๊ฐ ์์ ์ ์์ต๋๋ค. ๋ง์ฝ 'brand-guidelines'๊ฐ 'product-card-components'๋ณด๋ค ๋์ ์ฐ์ ์์๋ก ์ ์๋๋ค๋ฉด, ๋ธ๋๋ ๊ฐ์ด๋๋ผ์ธ ๋ด์์ ๋ฒํผ์ ์ ์ฉ๋ ๋ธ๋๋ ์์์ 'product-card-components' ๋ ์ด์ด์ ์ ์๋ ๊ธฐ๋ณธ ๋ฒํผ ์์์ ์ฌ์ ์ํ ๊ฒ์ ๋๋ค. ์ด๋ ์ปดํฌ๋ํธ ์คํ์ผ์ด ์์ค ์์์์ ๋ ๋์ค์ ๋ํ๋๋๋ผ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
`!important` ์ฃผ์์ฌํญ
!important๊ฐ ์ฌ์ ํ ์ฐ์ ์์๋ฅผ ๊ฐ๋๋ค๋ ๊ฒ์ ๊ธฐ์ตํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ง์ฝ ๋ฎ์ ์ฐ์ ์์ ๋ ์ด์ด ๋ด์ ๊ท์น์ด `!important`๋ก ํ์๋๋ฉด, ์ด๋ `!important`๋ก ํ์๋์ง ์์ ๋์ ์ฐ์ ์์ ๋ ์ด์ด์ ๋์ผํ ์ ํ์๋ฅผ ๊ฐ์ง ๊ท์น์ ์ฌ์ ์ํฉ๋๋ค.
@layer base {
.widget { background-color: yellow; }
}
@layer theme {
.widget { background-color: orange !important; }
}
/* Even though 'theme' might have lower precedence than 'base', !important wins */
๋ช ์๋์ ์์: ๋ฏธ๋ฌํ ์ํฅ
๋ ์ด์ด๋ ์ฃผ๋ก ์ถ์ฒ์ ์์๋ฅผ ๊ด๋ฆฌํ์ง๋ง, ๋ช ์๋๋ ์ฌ์ ํ ๊ฐ ๋ ์ด์ด ๋ด์์ ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ์ถ์ฒ์ ๊ท์น์ ๋น๊ตํ ๋ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. '๋ถ๋ชจ' ๋ ์ด์ด๋ ๋ ์ด์ด ์์์ ๊ด๊ณ์์ด ๋์ ๋ช ์๋ ๋๋ฌธ์ ๊ทธ ๊ท์น์ด ์ ์ฉ๋ ๊ฐ๋ฅ์ฑ์ด ๋ ๋๋ค๋ฉด '์์' ๋ ์ด์ด์ ์ํฅ์ ๋ฏธ์น๋ ๊ฒ์ผ๋ก ์๊ฐํ ์ ์์ต๋๋ค.
๋ ์ด์ด ๋ด ๋ช ์๋
๋จ์ผ ๋ ์ด์ด ๋ด์์๋ ํ์ค CSS ๋ช ์๋ ๊ท์น์ด ์ ์ฉ๋ฉ๋๋ค. ๋์ผํ ๋ ์ด์ด์ ๋์ผํ ์ ํ์๋ฅผ ๊ฐ์ง ๋ ๊ฐ์ ๊ท์น์ด ์๋ค๋ฉด, ๋ ๋์ ๋ช ์๋๋ฅผ ๊ฐ์ง ๊ท์น์ด ์ด๊น๋๋ค. ์ฌ๊ธฐ์๋ ์์ ์ ํ์, ํด๋์ค ์ ํ์, ID ์ ํ์์ ๊ณ ์ ์ ์ธ ๊ท์น์ด ์ฌ์ ํ ์ ์ฉ๋ฉ๋๋ค.
๋ ์ด์ด ๊ฐ ๋ช ์๋
๋ค๋ฅธ ๋ ์ด์ด์ ๊ท์น์ ๋น๊ตํ ๋:
- ๋จผ์ , ์บ์ค์ผ์ด๋ ๋ ์ด์ด ์์๋ฅผ ํ์ธํฉ๋๋ค. ๋ช ์๋๊ฐ ๋์ผํ๋ค๋ฉด ๋ ๋์ ์ฐ์ ์์ ๋ ์ด์ด์ ๊ท์น์ด ์ด๊น๋๋ค.
- ๋ช ์๋๊ฐ ๊ฐ์ง ์๋ค๋ฉด, ๋์ผํ ์ถ์ฒ์ ์ค์๋ ๋ด์ ์๋ค๋ฉด ๋ ๋์ ๋ช ์๋๋ฅผ ๊ฐ์ง ๊ท์น์ด ์ด๊น๋๋ค.
์ด๋ ๋ฎ์ ์ฐ์ ์์ ๋ ์ด์ด์ ๋งค์ฐ ๋ช ์์ ์ธ ๊ท์น์ด ๋์ ์ฐ์ ์์ ๋ ์ด์ด์ ๋ ๋ช ์์ ์ธ ๊ท์น์ ์ฌ์ ์ํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ๋จ, ๋ ๋ค ๋์ผํ ์ถ์ฒ(์: ์์ฑ์ ์คํ์ผ)์ ์ค์๋(์ผ๋ฐ ์ ์ธ) ๋ด์ ์์ด์ผ ํฉ๋๋ค.
/* Layer 'layout' - higher precedence */
@layer layout;
/* Layer 'theme' - lower precedence */
@layer theme;
@layer layout {
/* Less specific */
.container { width: 960px; }
}
@layer theme {
/* More specific */
body #app .container { width: 100%; }
}
/* The theme layer rule will win because it has higher specificity, even though 'layout' has higher layer precedence. */
์ด ๊ฒฝ์ฐ 'layout'์ ์ผ๋ฐ์ ์ธ ๊ท์น์ ์ค์ ํ๋ '๋ถ๋ชจ' ๋ ์ด์ด๋ก ๋ณผ ์ ์์ง๋ง, 'theme' ๋ ์ด์ด๋ ๋ ๋ช ์์ ์ธ ์ ํ์๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ์ปจํ ์คํธ์ ๋ํด ์ด๋ฌํ ์ผ๋ฐ ๊ท์น์ '์์ 'ํ๊ฑฐ๋ '์ฌ์ ์'ํ ์ ์์ต๋๋ค. '๋ถ๋ชจ' ๋ ์ด์ด๋ ๊ธฐ์ค์ ์ ์ ๊ณตํ๊ณ '์์' ๋ ์ด์ด๋ ์ด๋ฅผ ๊ตฌ์ฒดํํฉ๋๋ค.
์์ฑ์ ์์
์บ์ค์ผ์ด๋์ ์์์ ๊ตฌ๋ณํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์บ์ค์ผ์ด๋ ๋ ์ด์ด๋ ์ด๋ค ๊ท์น์ด ์ ์ฉ๋ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐ๋ฉด, CSS ์์์ `color`, `font-family`, `font-size`์ ๊ฐ์ ํน์ ์์ฑ์ด DOM์์ ๋ถ๋ชจ ์์์์ ์์ ์์๋ก ์ด๋ป๊ฒ ์ ๋ฌ๋๋์ง๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์บ์ค์ผ์ด๋ ๋ ์ด์ด๋ DOM ์์์ ์ง์ ์ ์ดํ์ง ์๊ณ , ์คํ์ผ์ํธ์ ๋ช ์๋์ ์ถ์ฒ๋ฅผ ์ ์ดํฉ๋๋ค.
ํ์ง๋ง ์บ์ค์ผ์ด๋ ๋ ์ด์ด๋ฅผ ํตํด ์ ์ฉ๋ ๊ท์น์ ํ์คํ ์์๋ ๊ฐ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ๋ถ๋ชจ ์์์ ๋์ ์ฐ์ ์์ ๋ ์ด์ด๋ฅผ ํตํด ์คํ์ผ์ด ์ ์ฉ๋๋ฉด, ๊ทธ ์คํ์ผ์ ์์ ์์์ ์์๋ ์ ์์ต๋๋ค. ๋ฐ๋๋ก, ์์ ์์์๋ ๋ฎ์ ์ฐ์ ์์ ๋ ์ด์ด์ ํน์ ๊ท์น์ ํตํด ์คํ์ผ์ด ์ ์ฉ๋์ด ์์๋ ์์ฑ์ ๋ง๊ฑฐ๋ ์ฌ์ ์ํ ์ ์์ต๋๋ค.
๊ธ๋ก๋ฒ ๊ด์ : ๊ธ๋ก๋ฒ ๋์์ธ ์์คํ ์ ๊ฐ์ถ ๋ค๊ตญ์ ๊ธฐ์ ์ ์๊ฐํด ๋ณด์ธ์. 'core-design-system' ๋ ์ด์ด๋ ๊ธฐ๋ณธ ํ์ดํฌ๊ทธ๋ํผ(`font-family`, `font-size`)๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ง์ญ ๋ง์ผํ ํ์ ํด๋น ์ง์ญ์ ๋ง๋ ํน์ ๊ธ๊ผด์ด๋ ํฌ๊ธฐ๋ฅผ ์ค์ ํ๋ 'regional-branding' ๋ ์ด์ด๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. 'regional-branding' ๋ ์ด์ด๊ฐ ๋ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ฉด ํด๋น ๊ธ๊ผด์ด ์ฌ์ฉ๋ฉ๋๋ค. ๋ง์ฝ ์ฐ์ ์์๊ฐ ๋ฎ์ง๋ง ํด๋น ์ง์ญ ์ฝํ ์ธ ๋ด์ ์์๋ฅผ ๋์์ผ๋ก ํ๋ ๋ ๋ช ์์ ์ธ ์ ํ์๋ฅผ ์ฌ์ฉํ๋ค๋ฉด, ๊ทธ ํน์ ๊ท์น์ ์ฌ์ ํ ์ผ๋ฐ์ ์ธ 'core-design-system' ๊ท์น๋ณด๋ค ์ฐ์ ํฉ๋๋ค.
๊ตฌ์ฑ ๋ฐ ์บก์ํ: ๋ ์ด์ด๋ก ๊ตฌ์กฐํํ๊ธฐ
์บ์ค์ผ์ด๋ ๋ ์ด์ด์ ๋ถ๋ชจ-์์ ๊ด๊ณ๋ ์ ์ง๋ณด์์ฑ๊ณผ ํ์ฅ์ฑ์ ์ํด ์คํ์ผ์ํธ๋ฅผ ์ด๋ป๊ฒ ๊ตฌ์กฐํํ๋์ง๋ฅผ ํตํด์๋ ์ดํดํ ์ ์์ต๋๋ค. ํน์ ๊ด์ฌ์ฌ๋ฅผ ์บก์ํํ๋ '๋ถ๋ชจ' ์ญํ ์ ํ๋ ๋ ์ด์ด๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์ค์ฒฉ ๋ ์ด์ด (์๋ฌต์ ์ผ๋ก)
CSS์๋ ๊ตฌ๋ฌธ์ ์ผ๋ก ์๋ก ๋ด๋ถ์ ์ง์ ํ '์ค์ฒฉ๋' @layer ๊ท์น์ด ์์ง๋ง, ์ด๋ฆ ์ง์ ๊ท์น๊ณผ ๋ช
์์ ์ธ ์์ ์ง์ ์ ํตํด ์ ์ฌํ ํจ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ํด ๋ณด์ธ์. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฒด๋ฅผ ์ํ ๋ ์ด์ด๊ฐ ์์ ์ ์๊ณ , ๊ทธ ์์์ ๋ค๋ฅธ ์ ํ์ ์ปดํฌ๋ํธ๋ ์ฌ์ง์ด ์ปดํฌ๋ํธ์ ํน์ ์ธก๋ฉด์ ๋ํ ์คํ์ผ์ ๊ด๋ฆฌํ๊ณ ์ถ์ ์ ์์ต๋๋ค.
@layer component-library;
@layer component-library.buttons;
@layer component-library.forms;
@layer component-library {
/* Base styles for all components */
.btn, .input {
border: 1px solid grey;
padding: 8px;
}
}
@layer component-library.buttons {
.btn {
background-color: lightblue;
}
}
@layer component-library.forms {
.input {
border-radius: 4px;
}
}
์ด ๊ตฌ์กฐ์์:
component-library๋ ์ด์ด ์์ฒด๋ ํน์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋๋ค.component-library.buttons์component-library.forms๋ 'component-library' ๋ค์์คํ์ด์ค์ ์ํ ํ์ ๋ ์ด์ด์ด๋ฉฐ ์ ์ธ ์์์ ๋ฐ๋ผ ์ ๋ ฌ๋ฉ๋๋ค. ์ฃผcomponent-library๋ ์ด์ด(์คํ์ผ์ ์ง์ ํฌํจํ๋ ๊ฒฝ์ฐ)๋ ๋ค๋ฅธ ์ต์์ ๋ ์ด์ด์ ๋ํ ์๋์ ์ฐ์ ์์๋ ๋ช ์์ ์ธ ์์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
์ด๋ฅผ ํตํด ์คํ์ผ์ ๊ณ์ธต์ ์ผ๋ก ๊ตฌ์ฑํ ์ ์์ผ๋ฉฐ, ์ฃผ ๋ ์ด์ด๋ ์ ๋ฌธํ๋ ํ์ ๋ ์ด์ด์ '๋ถ๋ชจ' ์ญํ ์ ํฉ๋๋ค. '๋ถ๋ชจ' ๋ ์ด์ด์ ์คํ์ผ์ ๊ธฐ์ค์ ์ ์ ๊ณตํ๊ณ , '์์' ๋ ์ด์ด๋ ํน์ ์ปดํฌ๋ํธ๋ ๊ธฐ๋ฅ์ ๋ง๊ฒ ์ด๋ฅผ ๊ตฌ์ฒดํํฉ๋๋ค.
๋์์ธ ์์คํ ์ ์ํ ๋ ์ด์ด๋ง
์ผ๋ฐ์ ์ด๊ณ ๊ฐ๋ ฅํ ์ ์ฉ ์ฌ๋ก๋ ๋์์ธ ์์คํ ์ ๊ตฌ์ถํ๋ ๊ฒ์ ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๊ณ์ธตํ๋ ์ํคํ ์ฒ๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค:
- ๊ธฐ๋ณธ/๋ฆฌ์ ๋ ์ด์ด: ๋ธ๋ผ์ฐ์ ์คํ์ผ์ ์ ๊ทํํ๊ธฐ ์ํจ.
- ํ ํฐ/๋ณ์ ๋ ์ด์ด: ๋ค๋ฅธ ๋ ์ด์ด์์ ์ฌ์ฉ๋๋ ๋์์ธ ํ ํฐ(์์, ๊ฐ๊ฒฉ, ํ์ดํฌ๊ทธ๋ํผ) ์ ์.
- ํต์ฌ ์ปดํฌ๋ํธ ๋ ์ด์ด: ๊ธฐ๋ณธ์ ์ด๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ UI ์์(๋ฒํผ, ์นด๋, ์ ๋ ฅ).
- ๋ ์ด์์ ๋ ์ด์ด: ๊ทธ๋ฆฌ๋ ์์คํ , ์ปจํ ์ด๋, ํ์ด์ง ๊ตฌ์กฐ.
- ์ ํธ๋ฆฌํฐ ๋ ์ด์ด: ์ผ๋ฐ์ ์ธ ์กฐ์ ์ ์ํ ํฌํผ ํด๋์ค(์: `margin-left: auto`).
- ํ ๋ง ๋ ์ด์ด: ๋ค๋ฅธ ๋ธ๋๋ ๋ฏธํ์ด๋ ๋คํฌ/๋ผ์ดํธ ๋ชจ๋๋ฅผ ์ํ ๋ณํ.
- ํ์ด์ง๋ณ/์ฌ์ ์ ๋ ์ด์ด: ํน์ ํ์ด์ง์ ๊ณ ์ ํ ์คํ์ผ์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ ์ํ๊ธฐ ์ํจ.
์ด ๋ชจ๋ธ์์ ๊ฐ ๋ ์ด์ด๋ ์ ํํ๋ ๋ ์ด์ด์ ๊ด๊ณ๋ฅผ ๋งบ๊ณ ์๋ ๊ฒ์ผ๋ก ๋ณผ ์ ์์ต๋๋ค. '๊ธฐ๋ณธ' ๋ ์ด์ด๋ ๊ธฐ์ด์ ๋๋ค. 'ํ ํฐ' ๋ ์ด์ด๋ 'ํต์ฌ ์ปดํฌ๋ํธ' ๋ฑ์ด ์ฌ์ฉํ๋ ๊ฐ์ ์ ๊ณตํฉ๋๋ค. 'ํต์ฌ ์ปดํฌ๋ํธ'๋ ํ ๋ง๊ฐ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉ์ ์ ์ํ๊ธฐ ์ํ ๊ฒ์ด๋ผ๋ฉด 'ํ ๋ง'์ '๋ถ๋ชจ'๋ก ๊ฐ์ฃผ๋ ์ ์์ต๋๋ค. '์ ํธ๋ฆฌํฐ'๋ ๋ฌด์์ด๋ ์ฌ์ ์ํ ์ ์๋๋ก ๊ฐ์ฅ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
๊ตญ์ ํ ์์: ๋ค๊ตญ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ 'language-specific-styles'(์ธ์ด๋ณ ์คํ์ผ) ๋ ์ด์ด๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. ์ด ๋ ์ด์ด๋ ํน์ ๊ธ๋ฆฌํ๊ฐ ํ์ํ ์ธ์ด์ ๊ธ๊ผด ๊ณ์ด์ ์ฌ์ ์ํ๊ฑฐ๋ ํ ์คํธ ํ์ฅ์ ๋ง์ถฐ ๊ฐ๊ฒฉ์ ์กฐ์ ํ ์ ์์ต๋๋ค. ์ด ๋ ์ด์ด๋ ์ผ๋ฐ์ ์ธ ์ปดํฌ๋ํธ ์คํ์ผ์ ์ฌ์ ์ํ ์ ์์ ๋งํผ ์ถฉ๋ถํ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ ธ์ผ ํ๋ฉฐ, ์ฌ์ค์ ์ธ์ด๋ณ ํํ์ ์ง์ํ๋ '๋ถ๋ชจ' ์ญํ ์ ํ์ฌ ๋ค๋ฅธ ์คํฌ๋ฆฝํธ์ ์ฐ๊ธฐ ์ฒด๊ณ ์ ๋ฐ์ ๊ฑธ์ณ ๊ฐ๋ ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
์ค์ฉ์ ์๋ฏธ์ ๋ชจ๋ฒ ์ฌ๋ก
์์์ ๋ช ์๋์ ์ํด ์ฃผ๋๋๋ ๋ถ๋ชจ-์์ ๋ ์ด์ด ๊ด๊ณ๋ฅผ ์ดํดํ๋ฉด ๋ ์์ธก ๊ฐ๋ฅํ๊ณ ์ ์ง๋ณด์ํ๊ธฐ ์ฌ์ด CSS๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
ํต์ฌ ์์ฝ:
- ๋ ์ด์ด ์์๊ฐ ์ฐ์ ์ ๋๋ค: ๋ ์ด์ด๋ฅผ ์ ์ธํ๊ณ ์ ์ํ๋ ์์๊ฐ ์ฐ์ ์์๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ๋ ๋๊ฒ ์ ์ธ๋ ๋ ์ด์ด๋ '๋ถ๋ชจ'์ ์ํฅ์ ๋ฏธ์ณ ๋์ผํ ๋ช ์๋๋ฅผ ๊ฐ์ง ๋ ๋ฎ๊ฒ ์ ์ธ๋ ๋ ์ด์ด๋ฅผ ์ฌ์ ์ํฉ๋๋ค.
- ๋ช ์๋๋ ์ฌ์ ํ ์ค์ํฉ๋๋ค: '์์' ๋๋ ๋ฎ์ ์ฐ์ ์์ ๋ ์ด์ด์ ๋ ๋ช ์์ ์ธ ์ ํ์๋ ์ฌ์ ํ '๋ถ๋ชจ' ๋๋ ๋์ ์ฐ์ ์์ ๋ ์ด์ด์ ๋ ๋ช ์์ ์ธ ์ ํ์๋ฅผ ์ฌ์ ์ํ ์ ์์ต๋๋ค.
- `!important`๋ ์ต์ข ์ฌ์ ์ ์๋จ์ ๋๋ค: `!important`๊ฐ ์๋ ๊ท์น์ ํด๋น ์ถ์ฒ ๋ด์์ ๋ ์ด์ด ์์๋ ๋ช ์๋์ ๊ด๊ณ์์ด ํญ์ ์ด๊น๋๋ค. ์ ์คํ๊ฒ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- ์ ์ง๋ณด์๋ฅผ ์ํ ๊ตฌ์กฐํ: ๋ ์ด์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ด๋ จ ์คํ์ผ(์: ๋ฆฌ์ , ์ปดํฌ๋ํธ, ์ ํธ๋ฆฌํฐ, ํ ๋ง)์ ๋ ผ๋ฆฌ์ ์ผ๋ก ๊ทธ๋ฃนํํ์ธ์. ์ด ์กฐ์ง์ ํจํด์ ์คํ์ผ์ํธ์ ๋ถ๋ชจ-์์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๋ชจ๋ฐฉํฉ๋๋ค.
- ์์๋ณด๋ค ๊ตฌ์ฑ์ ์ฌ์ฉํ์ธ์: ๋จ์ํ DOM ์์์ ์์กดํ๊ธฐ๋ณด๋ค๋ ๋ ์ด์ด๊ฐ ์คํ์ผ์ ์ด๋ป๊ฒ ๊ตฌ์ฑํ๋์ง ์๊ฐํ์ธ์. ๋ ์ด์ด๋ ๋ ๋์ ์์ค์์ ์คํ์ผ ์ ์ฉ์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
๋ ์ด์ด๋ฅผ ๋ช ์์ ์ผ๋ก ์ฌ์ฉํด์ผ ํ ๋
- ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ: ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ CSS๋ฅผ ์์ฒด ๋ ์ด์ด์ ๋ฃ๊ณ ์ ์๋ ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ์ฌ ์๊ธฐ์น ์๊ฒ ์ฌ๋ฌ๋ถ์ ์คํ์ผ์ ์ฌ์ ์ํ์ง ์๋๋ก ํ๊ฑฐ๋, ์ฌ๋ฌ๋ถ์ ์คํ์ผ์ด ์ผ๊ด๋๊ฒ ์ฌ์ ์ํ๋๋ก ํ ์ ์์ต๋๋ค.
- ํ๋ก์ ํธ ์ํคํ ์ฒ: `reset`, `base`, `components`, `utilities`, `themes`, `overrides`์ ๋ํ ๋ ์ด์ด๋ฅผ ์ ์ํ๋ฉด ๋ช ํํ๊ณ ๊ฒฌ๊ณ ํ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๋์์ธ ์์คํ : ๊ธฐ์ค ์คํ์ผ, ์ปดํฌ๋ํธ ์คํ์ผ ๋ฐ ํ ๋ง ๋ณํ์ ๊ด๋ฆฌํ๋ ๋ฐ ํ์์ ์ ๋๋ค.
- ๋ช ์๋ ์ ์ ๋ฐฉ์ง: ๋ ์ด์ด์ ๋ช ํํ ์ญํ ๊ณผ ์ฐ์ ์์๋ฅผ ํ ๋นํจ์ผ๋ก์จ ์ง๋์น๊ฒ ๋ช ์์ ์ธ ์ ํ์๋ ๊ณผ๋ํ `!important` ์ ์ธ์ ํ์์ฑ์ ์ค์ผ ์ ์์ต๋๋ค.
์์: ์๋ํํฐ UI ํคํธ ๊ด๋ฆฌํ๊ธฐ
UI ํคํธ(์: Bootstrap ๋๋ Materialize)๋ฅผ ์ฌ์ฉํ๊ณ ๊ทธ ์คํ์ผ์ ๊ด๋ฒ์ํ๊ฒ ์ฌ์ฉ์ ์ ์ํ๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ํ ์ ์์ต๋๋ค:
/* Higher precedence, your custom styles */
@layer custom-styles;
/* Lower precedence, third-party kit */
@layer ui-kit;
@layer ui-kit {
/* Import or include the UI kit's CSS here (e.g., via a preprocessor or link) */
@import "path/to/ui-kit.css";
}
@layer custom-styles {
/* Your overrides for specific components */
.btn-primary {
background-color: green;
border-color: darkgreen;
}
/* Even if .btn-primary has a style in ui-kit, yours will win */
}
์ฌ๊ธฐ์ custom-styles๋ ์ต์ข
๋ชจ์์ ์ง์ํ๋ '๋ถ๋ชจ' ๋ ์ด์ด ์ญํ ์ ํ๊ณ , ui-kit๋ ์ฌ์ ์๋๋ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ๋ '์์' ๋ ์ด์ด ์ญํ ์ ํฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์์์ ์ฐ์ ์์๋ฅผ ํตํ ๋ถ๋ชจ-์์ ๋ ์ด์ด ๊ด๊ณ์ ์ง์ ์ ์ธ ์ ์ฉ์
๋๋ค.
๊ฒฐ๋ก
CSS ์บ์ค์ผ์ด๋ ๋ ์ด์ด๋ ์คํ์ผ์ํธ ๊ด๋ฆฌ ๋ฐฉ์์ ํ์ ํ์ฌ ๋ช ์๋์ ์ถ์ฒ๋ฅผ ์ ์ดํ๋ ๊ฐ๋ ฅํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค. ๋ถ๋ชจ-์์ ๋ ์ด์ด ๊ด๊ณ๋ผ๋ ๊ฐ๋ ์ ๋ฌธ์ ๊ทธ๋๋ก์ DOM ๋ถ๋ชจ-์์ ์ฐ๊ฒฐ์ ์๋์ง๋ง, ๋ ์ด์ด ์์์ ๋ช ์๋์์ ์ํธ ์์ฉ์ ํตํด ๋ฌ์ฑ๋๋ ๊ณ์ธต์ ์ ์ด๋ฅผ ์ค๋ช ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ ๋์ ์ฐ์ ์์๋ก ์ ์ธ๋ '๋ถ๋ชจ' ๋ ์ด์ด๋ ์ผ๋ฐ์ ์ธ ํค๊ณผ ๊ท์น์ ์ค์ ํ๊ณ , '์์' ๋๋ ๋ฎ์ ์ฐ์ ์์ ๋ ์ด์ด๋ ์ด๋ฌํ ์คํ์ผ์ ๊ตฌ์ฒดํํ๊ฑฐ๋ ์ฌ์ ์ํ๊ฑฐ๋ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๋ ์ด์ด ์ฐ์ ์์, ๋ช ์๋, ๊ตฌ์ฑ์ด ์ด๋ป๊ฒ ์ํธ ์์ฉํ๋์ง ์ดํดํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ๋ ๊ฒฌ๊ณ ํ๊ณ ์ ์ง๋ณด์ ๊ฐ๋ฅํ๋ฉฐ ํ์ฅ ๊ฐ๋ฅํ CSS๋ฅผ ์ค๊ณํ ์ ์์ต๋๋ค. ์์ ๊ฐ์ธ ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค๋ ๋๊ท๋ชจ ๊ตญ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๋ , ์บ์ค์ผ์ด๋ ๋ ์ด์ด์ ๊ทธ ๊ณ ์ ํ ๋ถ๋ชจ-์์ ์ญํ์ ์ฑํํ๋ฉด ๋ ๊นจ๋ํ ์ฝ๋์ ๋ ์ ์ ์คํ์ผ๋ง ์ถฉ๋๋ก ์ด์ด์ง ๊ฒ์ ๋๋ค. ์ค๋๋ถํฐ ๋ ์ด์ด๋ก ์คํ์ผ์ํธ๋ฅผ ๊ตฌ์กฐํํ๊ณ ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ์ ๊ฐ์ ธ๋ค์ฃผ๋ ๋ช ํ์ฑ๊ณผ ์ ์ด๋ ฅ์ ๊ฒฝํํด ๋ณด์ธ์.